<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p>Converts attributes <code>{...}</code> syntax into attributes AST nodes and adds an attribute provider to
set attributes for immediately preceding sibling element during HTML rendering.</p>
<ul>
  <li>
    <p>Backward compatible with <code>ASSIGN_TEXT_ATTRIBUTES</code> option is <code>false</code></p>
    <p>Applied to the preceding element, if that element is plain text then attributes are applied to
    the parent element of the text.</p>
    <p>If the attributes element is the first element of a paragraph then the attributes will be
    applied to the paragraph&rsquo;s parent element. Effectively putting attributes element first in a
    paragraph allows you to set the attributes of list items, block quotes or other paragraph
    containers.</p>
  </li>
  <li>
    <p>Default Extended Behavior with <code>ASSIGN_TEXT_ATTRIBUTES</code> option is <code>true</code></p>
    <p>If an attribute element is spaced from the previous plain text element <code>some text {attributes}</code> then attributes are for the parent of the text. If they are attached to the text
    element <code>some text{attributes}</code> then they are assigned to the immediately preceding plain text
    span. Within an inline element same rules apply: <code>**bold text {attr}**</code> are for the strong
    emphasis span, while <code>**bold text{attr}**</code> will wrap the text between the strong emphasis
    tags, in a span with given attributes.</p>
    <p>If a plain text span is interrupted by an HTML comment then it is considered as two separate
    plain text spans. ie. <code>some &lt;!----&gt;text{attr}</code> will result in <code>some &lt;!----&gt;&lt;span attr&gt;text&lt;/span&gt;</code> rendering.</p>
  </li>
</ul>
<p>The attributes is a space separated list of attribute syntax of one of the following:</p>
<ul>
  <li><code>name=value</code></li>
  <li><code>name='value'</code></li>
  <li><code>name=&quot;value&quot;</code></li>
  <li><code>#id</code></li>
  <li><code>.class</code></li>
</ul>
<p>Attribute which starts with <code>#</code> such as <code>#id-string</code> is equivalent to <code>id=&quot;id-string&quot;</code> and
<code>.class-name</code> are equivalent to <code>class=&quot;class-name&quot;</code></p>
<p><strong>NOTE</strong>: Handling of multiple value assignment for attributes depends on its name:</p>
<ul>
  <li><code>class</code> values are accumulated as a space (<code></code>) separated list.</li>
  <li><code>style</code> values are accumulated as a semicolon (<code>;</code>) separated list.</li>
  <li>all others override any previous values of the same name.</li>
</ul>
<p>Setting <code>USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER</code> to <code>true</code>, will treat <code>{.}</code> or <code>{#}</code> as markers
for start of closest matching attributes node to give greater control of where attributes are
attached in text.</p>
</body>
</html>
